import java.io.IOException;
import java.sql.SQLException;
import java.util.GregorianCalendar;
import java.util.List;

import model.core.torneo.Gara;
import model.core.torneo.Torneo;
import model.core.torneo.calendario.FactoryCalendarGenerator;
import model.core.utente.Giocatore;
import model.core.utente.GiocatoreInterface;
import model.facade.FactoryRequirement;
import model.utility.Utility;
import controller.macro.ConditionException;

/**
 * 
 * @author Giuseppe Fusco (fusgius19@gmail.com)
 *
 */
public class Test {

	/**
	 * @param args
	 * @throws SQLException 
	 * @throws IOException 
	 * @throws ClassNotFoundException 
	 * @throws ConditionException 
	 */
	public static void main(String[] args) throws ClassNotFoundException, IOException, SQLException  {
		// TODO Auto-generated method stub
		
		/*Gara g = new Gara();
		Gara gg = g;
		GregorianCalendar gr = new GregorianCalendar(2010, 0, 15);
		g.setData_inizio(gr);
		System.out.println(Utility.SDF.format(g.getData_inizio().getTime()));
		g.setData_inizio(gg.getData_inizio());
		System.out.println(Utility.SDF.format(g.getData_inizio().getTime()));*/
		/*DAOManager_MySQL d = DAOManager_MySQL.getInstance("localhost", 3306, "uniplay_db", "root", "android90bntorre");
		Gara g = new Gara();
		g.setNome("gara_1");
		d.getGaraDao().delete(d.getGaraDao().load("gara_4").get(0));
		d.commit();*/
		//Torneo g = d.getTorneoDao().load("fsggt").get(0);
		//System.out.println(g.getCalendario().getCalendario().get(0).getX().getData_inizio().getTime().toString());
		//Commissario c = Commissario.createFromStudente(s);
		//System.out.println(c instanceof Commissario);
		//d.getStudenteDao().update(c);
		//d.commit();
		Giocatore g1 = new Giocatore();
		g1.setNome("a");g1.setMatricola("a");
		Giocatore g2 = new Giocatore();
		g2.setNome("b");g2.setMatricola("b");
		Giocatore g3 = new Giocatore();
		g3.setNome("c");g3.setMatricola("c");
		Giocatore g4 = new Giocatore();
		g4.setNome("d");g4.setMatricola("d");
		//List<Giocatore> gioc= new ArrayList<Giocatore>();
		//gioc.add(g1);gioc.add(g2);gioc.add(g3);gioc.add(g4);
		//Collections.rotate(gioc, -1);
		//for(GiocatoreInterface g: gioc)
			//System.out.println(((Giocatore)g).getNome());
		Torneo t = new Torneo(4, 2);
		t.addGiocatore(g1);t.addGiocatore(g2);t.addGiocatore(g3);t.addGiocatore(g4);
//		List<Gara> gare = getGironeItaliano(gioc);
		t.setCalendario(FactoryCalendarGenerator.getGironeItaliano(t.getClassifica().getGiocatori()));
		List<Gara> gare = t.getCalendario();
		for(int i=0; i<gare.size(); i++){
			if(i%2==0 && i!=0 && i!=gare.size()/2)
				System.out.println("---");
			if(i==gare.size()/2)
				System.out.println("\nritorno ------\n");
			for(GiocatoreInterface gi: gare.get(i).getGiocatori()){
				System.out.print(((Giocatore)gi).getNome()+" - ");
			}
			System.out.println();
		}
	}

}
